// SPDX-License-Identifier: Apache-2.0
// Copyright Authors of Cilium

// Code generated by informer-gen. DO NOT EDIT.

package v2

import (
	internalinterfaces "github.com/cilium/cilium/pkg/k8s/client/informers/externalversions/internalinterfaces"
)

// Interface provides access to all the informers in this group version.
type Interface interface {
	// CiliumClusterwideEnvoyConfigs returns a CiliumClusterwideEnvoyConfigInformer.
	CiliumClusterwideEnvoyConfigs() CiliumClusterwideEnvoyConfigInformer
	// CiliumClusterwideNetworkPolicies returns a CiliumClusterwideNetworkPolicyInformer.
	CiliumClusterwideNetworkPolicies() CiliumClusterwideNetworkPolicyInformer
	// CiliumEgressGatewayPolicies returns a CiliumEgressGatewayPolicyInformer.
	CiliumEgressGatewayPolicies() CiliumEgressGatewayPolicyInformer
	// CiliumEndpoints returns a CiliumEndpointInformer.
	CiliumEndpoints() CiliumEndpointInformer
	// CiliumEnvoyConfigs returns a CiliumEnvoyConfigInformer.
	CiliumEnvoyConfigs() CiliumEnvoyConfigInformer
	// CiliumExternalWorkloads returns a CiliumExternalWorkloadInformer.
	CiliumExternalWorkloads() CiliumExternalWorkloadInformer
	// CiliumIdentities returns a CiliumIdentityInformer.
	CiliumIdentities() CiliumIdentityInformer
	// CiliumLocalRedirectPolicies returns a CiliumLocalRedirectPolicyInformer.
	CiliumLocalRedirectPolicies() CiliumLocalRedirectPolicyInformer
	// CiliumNetworkPolicies returns a CiliumNetworkPolicyInformer.
	CiliumNetworkPolicies() CiliumNetworkPolicyInformer
	// CiliumNodes returns a CiliumNodeInformer.
	CiliumNodes() CiliumNodeInformer
}

type version struct {
	factory          internalinterfaces.SharedInformerFactory
	namespace        string
	tweakListOptions internalinterfaces.TweakListOptionsFunc
}

// New returns a new Interface.
func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {
	return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}
}

// CiliumClusterwideEnvoyConfigs returns a CiliumClusterwideEnvoyConfigInformer.
func (v *version) CiliumClusterwideEnvoyConfigs() CiliumClusterwideEnvoyConfigInformer {
	return &ciliumClusterwideEnvoyConfigInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}
}

// CiliumClusterwideNetworkPolicies returns a CiliumClusterwideNetworkPolicyInformer.
func (v *version) CiliumClusterwideNetworkPolicies() CiliumClusterwideNetworkPolicyInformer {
	return &ciliumClusterwideNetworkPolicyInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}
}

// CiliumEgressGatewayPolicies returns a CiliumEgressGatewayPolicyInformer.
func (v *version) CiliumEgressGatewayPolicies() CiliumEgressGatewayPolicyInformer {
	return &ciliumEgressGatewayPolicyInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}
}

// CiliumEndpoints returns a CiliumEndpointInformer.
func (v *version) CiliumEndpoints() CiliumEndpointInformer {
	return &ciliumEndpointInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
}

// CiliumEnvoyConfigs returns a CiliumEnvoyConfigInformer.
func (v *version) CiliumEnvoyConfigs() CiliumEnvoyConfigInformer {
	return &ciliumEnvoyConfigInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
}

// CiliumExternalWorkloads returns a CiliumExternalWorkloadInformer.
func (v *version) CiliumExternalWorkloads() CiliumExternalWorkloadInformer {
	return &ciliumExternalWorkloadInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}
}

// CiliumIdentities returns a CiliumIdentityInformer.
func (v *version) CiliumIdentities() CiliumIdentityInformer {
	return &ciliumIdentityInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}
}

// CiliumLocalRedirectPolicies returns a CiliumLocalRedirectPolicyInformer.
func (v *version) CiliumLocalRedirectPolicies() CiliumLocalRedirectPolicyInformer {
	return &ciliumLocalRedirectPolicyInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
}

// CiliumNetworkPolicies returns a CiliumNetworkPolicyInformer.
func (v *version) CiliumNetworkPolicies() CiliumNetworkPolicyInformer {
	return &ciliumNetworkPolicyInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
}

// CiliumNodes returns a CiliumNodeInformer.
func (v *version) CiliumNodes() CiliumNodeInformer {
	return &ciliumNodeInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}
}
